/*
 * Copyright (c) 2006, 2023, webrx.cn All rights reserved.
 *
 */

package cn.webrx;

import java.lang.reflect.Method;

/**
 * <p>Project: jse2303 - Ex2</p>
 * <p>Powered by webrx On 2023-07-28 10:47:50</p>
 * <p>描述：<p>
 *
 * @author webrx [webrx@126.com]
 * @version 1.0
 * @since 17
 */
public class Ex2 {
    public static void main(String[] args) throws Exception {
        //正射
        User u = new User();
        int a = u.show(3);
        System.out.println(a);

        //反射 速度慢 但是功能强 框架必须了解的技术
        //Class<User> c = User.class;
        Class<?> c = Class.forName("cn.webrx.User");
        Object u2 = c.getConstructor().newInstance(); //对象实例化
        Method show = c.getMethod("show", int.class); //反射获取方法
        Object invoke = show.invoke(u2, 11); //执行方法
        System.out.println(invoke);

        //利用反射输出String类所有方法名
        for (Method m : String.class.getDeclaredMethods()) {
            System.out.println(m.getName() + "()");
        }

    }
}
